#ifndef __SIGNALS_H__
#define __SIGNALS_H__

#include <boost/bind.hpp>
#include <boost/signals2.hpp>

typedef boost::signals2::connection connection_t;

template<typename... Args>
struct Action
{
    typedef boost::signals2::signal<void(Args...)> signal_t;
    typedef typename signal_t::slot_type slot_t;
};

template<typename Ret, typename... Args>
struct Func
{
    typedef boost::signals2::signal<Ret(Args...)> signal_t;
    typedef typename signal_t::slot_type slot_t;
};


#endif